CREATE TABLE [dbo].[TaskMain]
(
[TaskKey] [uniqueidentifier] NOT NULL,
[TaskTypeCode] [nvarchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[TaskStatusCode] [nvarchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[TaskStatusDate] [datetime] NULL,
[Subject] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[Comments] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[AssigneeKey] [uniqueidentifier] NULL,
[AssigneeGroupKey] [uniqueidentifier] NULL,
[AssigneeUserKey] [uniqueidentifier] NULL,
[WorkflowInstanceKey] [uniqueidentifier] NULL,
[AccessKey] [uniqueidentifier] NOT NULL,
[CreatedByUserKey] [uniqueidentifier] NOT NULL,
[CreatedOn] [datetime] NOT NULL,
[UpdatedByUserKey] [uniqueidentifier] NOT NULL,
[UpdatedOn] [datetime] NOT NULL,
[StartDate] [datetime] NULL,
[DueDate] [datetime] NULL,
[CompletedByUserKey] [uniqueidentifier] NULL,
[CompletedOn] [datetime] NULL,
[MarkedForDeleteOn] [datetime] NULL,
[TaskPriorityCode] [int] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
ALTER TABLE [dbo].[TaskMain] ADD CONSTRAINT [PK_TaskMain] PRIMARY KEY CLUSTERED ([TaskKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_TaskMain_AccessKey] ON [dbo].[TaskMain] ([AccessKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_TaskMain_AssigneeGroupKey] ON [dbo].[TaskMain] ([AssigneeGroupKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_TaskMain_AssigneeKey] ON [dbo].[TaskMain] ([AssigneeKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_TaskMain_AssigneeUserKey] ON [dbo].[TaskMain] ([AssigneeUserKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_TaskMain_CompletedByUserKey] ON [dbo].[TaskMain] ([CompletedByUserKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_TaskMain_CreatedByUserKey] ON [dbo].[TaskMain] ([CreatedByUserKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_TaskMain_TaskPriorityCode] ON [dbo].[TaskMain] ([TaskPriorityCode]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_TaskMain_TaskStatusCode] ON [dbo].[TaskMain] ([TaskStatusCode]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_TaskMain_TaskTypeCode] ON [dbo].[TaskMain] ([TaskTypeCode]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_TaskMain_UpdatedByUserKey] ON [dbo].[TaskMain] ([UpdatedByUserKey]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TaskMain] ADD CONSTRAINT [FK_TaskMain_AccessMain] FOREIGN KEY ([AccessKey]) REFERENCES [dbo].[AccessMain] ([AccessKey])
GO
ALTER TABLE [dbo].[TaskMain] ADD CONSTRAINT [FK_TaskMain_GroupMain] FOREIGN KEY ([AssigneeGroupKey]) REFERENCES [dbo].[GroupMain] ([GroupKey])
GO
ALTER TABLE [dbo].[TaskMain] ADD CONSTRAINT [FK_TaskMain_TaskStatusRef] FOREIGN KEY ([TaskStatusCode]) REFERENCES [dbo].[TaskStatusRef] ([TaskStatusCode])
GO
ALTER TABLE [dbo].[TaskMain] ADD CONSTRAINT [FK_TaskMain_TaskTypeRef] FOREIGN KEY ([TaskTypeCode]) REFERENCES [dbo].[TaskTypeRef] ([TaskTypeCode])
GO
ALTER TABLE [dbo].[TaskMain] ADD CONSTRAINT [FK_TaskMain_UniformRegistry] FOREIGN KEY ([TaskKey]) REFERENCES [dbo].[UniformRegistry] ([UniformKey])
GO
ALTER TABLE [dbo].[TaskMain] ADD CONSTRAINT [FK_TaskMain_UserMain_Assignee] FOREIGN KEY ([AssigneeUserKey]) REFERENCES [dbo].[UserMain] ([UserKey])
GO
ALTER TABLE [dbo].[TaskMain] ADD CONSTRAINT [FK_TaskMain_UserMain_CompletedBy] FOREIGN KEY ([CompletedByUserKey]) REFERENCES [dbo].[UserMain] ([UserKey])
GO
ALTER TABLE [dbo].[TaskMain] ADD CONSTRAINT [FK_TaskMain_UserMain_CreatedBy] FOREIGN KEY ([CreatedByUserKey]) REFERENCES [dbo].[UserMain] ([UserKey])
GO
ALTER TABLE [dbo].[TaskMain] ADD CONSTRAINT [FK_TaskMain_UserMain_UpdatedBy] FOREIGN KEY ([UpdatedByUserKey]) REFERENCES [dbo].[UserMain] ([UserKey])
GO
ALTER TABLE [dbo].[TaskMain] ADD CONSTRAINT [FK_TaskPriorityRef_TaskMain_PriorityCode] FOREIGN KEY ([TaskPriorityCode]) REFERENCES [dbo].[TaskPriorityRef] ([TaskPriorityCode])
GO